Robot control method

ABSTRACT

In a method for changing the relative orientation between a workpiece held or clamped by a robot and an arbitrary working point, without changing a determined position, the working point is defined in a reference coordinate system of the robot. In a teaching operation, the workpiece is held or clamped by the robot with respect to the working point. The workpiece is then rotated about the working point so that the workpiece can assume a desired relative orientation with respect to the working point.

FIELD OF THE INVENTION

The present invention relates to a motion control method for the teaching operation of a six-axis articulated robot.

BACKGROUND OF THE INVENTION

A conventional teaching operation is shown in FIG. 1. As shown, a teaching operation of a six-axis articulated robot, one of the following motion controls is carried out when the orientation of a workpiece 4 clamped is a tool (not shown) at each wrist flange of the robot as shown in FIG. 1(a) is changed to a desired relative orientation as shown in FIG. 1(c) with respect to an arbitrary working point A of a teaching operation tool 3:

(1) Each axis of the robot is controlled independently of the others, whereby a desired workpiece orientation is determined.

(2) A desired workpiece orientation is determined by the rotation around a reference coordinate axis on the main body of a robot and parallel displacement to the reference coordinate axis. (FIG. 1(b) and 1(c)).

(3) A desired workpiece orientation is determined by the rotation around the tool coordinate axis on the main body of the robot and parallel displacement to the tool coordinate axis. (FIGS. 1(b) and 1(c)).

The rotations described in (2) and (3) accomplish motion control by rotating around a control point R of a robot.

In method (2), the reference coordinate axes are defined by the reference coordinate axes (X_(R), Y_(R) and Z_(R)) which, in turn, define the coordinate system of the robot. In method (3), the tool coordinate axes refer to coordinates of a tool attached to the wrist flange of the robot.

However, according to the above-described methods, the workpiece 4 clamped by the robot assumes the desired orientation with respect to an arbitrary working point A by a method involving the control of each axis of the robot independently and the rotation of the workpiece around a coordinate axis with the control point R of the robot as the center of rotation with this method. The orientation of the workpiece 4 along cannot be changed without changing the position of the point P on the workpiece 4, meaning that the rotation and the parallel displacement must be repeatedly carried out, as shown in FIG. 1, resulting in a longer reaching operation time.

SUMMARY OF THE INVENTION

In view of the above, the primary object of the present invention is to attain a relative orientation between the workpiece 4 clamped by the robot and an arbitrary working point A without displacing the position of the point P as shown in FIG. 2.

For this purpose, the robot control method in accordance with the present invention is characterized by defining, through the reference coordinate system of the robot, an arbitrary working point A, and subsequently accomplishing the teaching operation of the workpiece 4 clamped or otherwise held by the robot with respect to the arbitrary working point, by controlling said arbitrary point A as viewed temporarily an end effector from a robot control point, and rotating the workpiece 4 about the working point, whereby the orientation of the workpiece relative to the working point A can be arbitrarily changed.

According to the present invention, the orientation of the workpiece clamped by the robot with respect to an arbitrary working point can be quickly changed to a desired orientation, thereby greatly shortening the teaching operation time.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a view used to explain some conventional teaching operations;

FIG. 2 is a view used to explain a teaching operation in accordance with the present invention;

FIG. 3 and 4 are views used to explain the definition of an arbitrary working point;

FIG. 5 is a vector diagram illustrating the relationship between a robot control point and an arbitrary working point;

FIG. 6 is a view illustrating the outside appearance of a six-axis articulated robot;

FIG. 7 is a view illustrating the projection over the Xo-Yo plane of the fixed coordinate system of a robot;

FIG. 8 is a view illustrating the projection over the Mo-Zo plane of a robot;

FIG. 9 is a block view illustrating the construction of a robot controller adapted for carrying out a robot control method in accordance with the present invention; and

FIG. 10 shows a flowchart for carrying out the robot control method in accordance with the present invention.

DESCRIPTION OF THE PREFERRED EMBODIMENT

A preferred embodiment of the present invention will be described in detail hereinafter.

First, as is best shown in FIG. 3, a tool 2 whose dimension is measured with a high degree of accuracy is attached to the wrist flange of a robot 1, thereby distinctly indicting the coordinates of an arbitrary working point A with a teaching operation tool 3. Next, as shown in FIG. 4, the tool 2 is displaced to a point B and a point C. In this case, the relationships between the point A-C are as follows:

Point A . . . a working point (the origin of the coordinate system);

Point B . . . the direction of the Xu axis; and

Point C . . . the direction of the Yu axis.

Furthermore, the exterior products AB and AC are in the direction of the Zu axis.

As shown in FIG. 5, the coordinate system at an arbitrary working point A, viewed from the coordinates of the points A, B and C on the reference coordinate system Z of the robot, is defined as S (4×4 matrix). ##EQU1## Furthermore,

    A=(P.sub.xs P.sub.ys P.sub.zs)

    X.sub.u =(n.sub.xs N.sub.ys N.sub.zs)

    Y.sub.u =(O.sub.xs O.sub.ys O.sub.zs)

    Z.sub.u (a.sub.xs a.sub.ys a.sub.zs)

and X_(u), Y_(u) and Z_(u) represent a unit vector.

Next, in the teaching operation, an arbitrary working point A is calculated as an end effector, viewed from the control point R on the workpiece 4 clamped by the robot 1 (FIG. 5).

    S=Z·T·E

    E=T.sup.-1 ·S.

Where T is a matrix representing the control point R of the robot; and

E is a matrix representing an end effector from the control point R of the robot to the working point A.

For example, the rotation around Zu axis defined by the working point A will be explained. When the angle of the rotation is represented by θ, the rotation matrix M is given by ##EQU2##

Since the apparent coordinate system S of an arbitrary working point A is represented by

    S'=S·M

the robot orientation is obtained by calculating six-axis link angles from T' obtained from

    T'·E=S'

    and

    T'=S'E.sup.-1.

In this case, for example, the arithmetic operation disclosed in Laid-Open Japanese Patent Application No. 62-198786 may be also used.

This operation or calculation will be described below.

FIG. 6 illustrates the outside appearance of the six-axis articulated robot to be controlled; FIG. 7 illustrates a projection of the fixed coordinates (X_(o), Y_(o), Z_(o)) of the robot over the X_(o) -Y_(o) plane; and FIG. 8 illustrates a projection of the robot over the M_(o) -Z_(o) plane.

STEP 1: First, the position data Px, Py and Pz of the robot are given.

STEP 2: Under the condition that the wrists 15, 16 and 17 are not movable, the calculations of the link angles θ₁, θ₂ and θ₃ of the fundamental three axes (body 12, lower arm 13 and upper arm 14) are calculated.

The operation is carried out by the following steps. As shown in FIG. 7, the robot is projected on the plane X_(o) -Y_(o) of the fixed coordinate system, thereby obtaining P_(x), P_(x) ', P_(y) P_(y) '. Then the link angle θ₁ is given by

    θ.sub.1 =tan.sup.-1 (P.sub.y '/P.sub.x ')

Next, it is assumed that the vector to the control point is M_(o) and the plane M_(o) -Z_(o) be defined. As shown in FIG. 8, the robot is projected over the plane M_(o) -Z_(o), whereby P_(z) ', P_(z) ", M', M".

Then, the link angles θ₂ and θ₃ are obtained from the following equations.

    θ.sub.2 =tan.sup.-1 (P'/M")

    θ.sub.3 =tan.sup.-1 (P.sub.z '/M").

Thus, the link angles θ₁, θ₂ and θ₃ are obtained, but it is noted here that these angles result under the assumption that the wrists remain stationary. In other words, these are temporary or provisional results.

STEP 3: Next the orientation data n_(x), n_(y) n_(z), O_(x), O_(y), O_(z), a_(x), a_(y), and a_(z) are inputted and calculated with the previously obtained θ₁, θ₂ and θ₃ (temporary or provisional results), whereby the link angles θ₁, θ₂ and θ₃ of a link flange are obtained. In this case, the arithmetic operations used in the conventional orientation control method are used to obtain the data for the wrist flange. The position data are not taken into consideration in this case. When, from the first to the sixth link coordinates, a matrix A_(n) representing the orientation of the six-axis articulation as the product of the four simultaneous conversion by which the n-th link coordinates are associated with the (n-1)-th link coordinates is introduced, the coordinates T₆ of the wrist flange are represented by

    T.sub.6 =A.sub.1 A.sub.2 A.sub.3 A.sub.4 A.sub.5 A.sub.6

Rewriting the above formula, A₃ ⁻¹ A₂ ⁻¹ A₁ ⁻¹ T₆ =A₄ A₅ A₆ ##EQU3## is obtained where, S, L, U, R, B and T represent Z₁, Z₂ . . . , and Z₆ -axes, respectively.

    SS=sinθ.sub.1, S.sub.LU =sin(θ.sub.2 +θ.sub.3), S.sub.U =sinθ.sub.3

    CS=cosθ.sub.1, C.sub.LU =cos(θ.sub.2 +θ.sub.3), C.sub.U =cosθ.sub.3

    SR=sinθ.sub.4, SB=sinθ.sub.5, ST=sinθ.sub.6

    CR=cosθ.sub.4, CB=cosθ.sub.5, CT=cosθ.sub.6

and

a₂ =length of the arm of the L axis;

d₂ =the distance between the center of rotation of the S axis and the center of rotation of the R axis,

d₄ =the length of the arm of the U axis; and

d₅ =the distance between the center of rotation of the R axis and the center of rotation of the T axis.

Rewriting Eq. (1), we have

    -CR·SB=a.sub.x CS·S.sub.LU +a.sub.y SS·S.sub.LU -a.sub.z C.sub.LU                                         (2)

    -SR·SB=a.sub.x SS+a.sub.y CS                      (3)

Further modifying Eqs. (2) and (3), we have ##EQU4##

From Eq. (4), we have

    -SB=a.sub.x (CS·S.sub.LU ·CR-SS·SR)+a.sub.y (SS·S.sub.LU ·CR+CS·SR)-a.sub.z C.sub.LU ·CR                                              (5)

    CB=a.sub.x CS·C.sub.LU+a.sub.y SS·C.sub.LU +S.sub.LU a.sub.z                                                   (6)

From Eqs. (5) and (6), we have ##EQU5##

From Eq. (4), we have

    ST=n.sub.x (CS·S.sub.LU ·SR-SS·CR)+n.sub.y (SS·S.sub.LU ·SR-CS·CR)-n.sub.z C.sub.LU ·SR                                              (7)

    CT=O.sub.x (CS·S.sub.LU ·SR-SS·CR)+O.sub.y (SS·S.sub.LU ·SR-CS·CR)-O.sub.z C.sub.LU ·SR                                              (8)

Assuming

    K=CS·S.sub.LU ·SR-SS·CR,

    L=SS·S.sub.LU ·SR-CS·CR,

    M=C.sub.LU ·SR

then we have ##EQU6## STEP 6: Furthermore, based on the link angles θ₄, θ₅ and θ₆ and the position data P_(x), P_(y), P_(z), the position is corrected. Similar arithmetic operations are carried out so that the link angle θ₁ . . . θ₆ of the three fundamental axes are obtained in the manner described above.

STEP 7: After completion of the arithmetic operations, the link angles θ₁ . . . θ₆ are outputted. These link angles approximately satisfy the position data and the orientation data specified by T₆.

Furthermore, in response to a degree of accuracy defined by the mechanical factors of the robot and a degree of accuracy in the case of the robot operation, the abovedescribed arithmetic operations (STEPS 1-6) may be repeated until a desired degree of accuracy is obtained.

In response to the link angles thus obtained, the operation command is delivered tot he axis so that the orientation of the workpiece 4 clamped by the robot can be handled as shown in FIG. 2. The same is true for the rotations about X_(u) and Y_(u) axes.

FIG. 9 is a block diagram illustrating the construction of a robot controller adapted to carry out the above described control method.

As shown in FIG. 9, the robot controller consists of a memory 10 and a CPU 20. The operation of the robot controller will be described with reference to the flowchart illustrated in FIG. 10. First, at step 100, the robot teaches the coordinates of an arbitrary working point A. Next as shown in step 110, the coordinates S of the working point are calculated based on the teaching points and then stored in the memory areas of the memory 10. Third, at step 120, in response to the signal from a teach box, an operation command is delivered to the CPU 20 so that the end effector E from the control point R of the robot to the working point A is calculated. At step 130, in response to the rotating coordinate system S' of the working point A and the former end effector E, the coordinates T' of the control point of the robot are calculated. At the step 140, in response to the coordinates T' of the control point of the robot, the link angle of each axis is calculated and the operation command is outputted.

INDUSTRIAL FEASIBILITY

In the holding or clamping operation on a workpiece, which is one of an operation modes of the industrial robot, the teaching operation is remarkably enhanced according to the present invention. 

We claim:
 1. A robot control method comprising defining an arbitrary working point, in a reference coordinate system of a robot; performing a teaching operation using said working point as a temporary end effector from a robot control point of a workpiece held or clamped by said robot with respect to said working point; and rotating said workpiece about said working point, to change the orientation of said robot to a desired relative orientation with respect to said working point. 